<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>New and Noteworthy in GEF 3.0</title>
<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
<style>
<!--
-->
</style>
</head>

<body>

<h1>GEF 3.0 - New and Noteworthy</h1>
<table cellpadding="10" cellspacing="0" width="600">
	<colgroup>
		<col width="20%" valign="top" align="right">
		<col width="80%" valign="top" align="left">
	</colgroup>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Rulers and Guides</b></td>
		<td>GEF viewers can now display accessible rulers along their top and left 
		edges. A ruler can display pixels, centimeters or inches. Guides can be 
		created on the ruler by clicking on an empty spot on the ruler or via its 
		context menu. Parts in the graphical editor can be dragged and attached 
		to the guides. They can also be attached when resizing. Alternatively, snapping 
		can be disabled by holding down the <i>Alt</i> key while dragging. Feedback 
		is shown in the form of a red line when a part is being attached to a guide.
		<p>
		<img src="images-30/rulers-guides.gif" alt="Screenshot showing a circuit being attached to a guide" title="Rulers and Guides"></p>
		<p>Parts that are attached to a guide will then move with the guide.</p>
		<p>
		<img src="images-30/guide-drag.gif" alt="Screenshot showing parts being dragged with a guide" title="Dragging Guides"></p>
		<p>A mechanism is available to show or hide rulers.</p>
		<p>
		<img src="images-30/rulers-menu.jpg" alt="Screenshot showing rulers enabled on the view menu" title="View Menu"></p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Grid</b></td>
		<td>GEF now provides a grid. Parts can be snapped to a grid during creation, 
		moving or resizing. It is also possible to have connection bendpoints snap 
		to it. (Note that snapping during creation and snapping of connection bendpoints, 
		although possible, have not been implemented in the logic example.) Alternatively, 
		snapping can be disabled by holding down the <i>Alt</i> key while dragging. 
		Grid snapping and visibility are two distinct properties, and it is possible 
		to enable one without the other. Like the rulers, the grid can be turned 
		off, if so desired.
		<p>
		<img src="images-30/grid.gif" alt="Screenshot showing a resized part snapping to grid" title="Grid"></p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Snap to Geometry</b></td>
		<td>The Snap to Geometry feature allows you to quickly align parts being 
		dragged to other parts in the diagram. Edges of parts being resized can 
		be snapped as well. A blue feedback line shows what the part is snapping 
		to. In the screenshot below, the circuit being dragged is aligning to the 
		vertical center of the topmost circuit, and the bottom of the other two 
		circuits.
		<p>
		<img src="images-30/geometry.gif" alt="Screenshot showing the Snap to Geometry feature" title="Snap to Geometry"></p>
		<p>As with the other snapping features, it can be disabled by holding down
		<i>Alt</i> while dragging, or can be permanently turned off.</p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Constrained Move and Resize</b></td>
		<td>Holding down the <i>Shift</i> key while moving a part will restrict 
		that part&#39;s movement to one of the primary eight directions (N, S, E, W 
		and the intermediaries). Doing the same while resizing will cause a proportionate 
		resize: the height to width ratio will be maintained.<p></p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Centered Resize</b></td>
		<td>Holding down the <i>Ctrl</i> key while resizing will cause a resize 
		to happen in the opposite direction of the drag as well, such that the center 
		of the part being resized will not change after the resize is done.
		<p>
		<img src="images-30/centered-resize.gif" alt="Screenshot showing centered resize" title="Centered Resize"></p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Cloning</b></td>
		<td>Holding down the <i>Ctrl</i> key while dragging activates cloning. Instead 
		of moving the parts being dragged, copies of those parts will be created 
		at the new location.&nbsp; During cloning, the cursor will also change to 
		indicate creation. </td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Palette View</b></td>
		<td>GEF 3.0 introduces the Palette View. This allows users to customize 
		the size and placement of the palette, and even close it when not needed. 
		Moreover, that size and placement remains the same between multiple GEF-based 
		editors.</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Fly-out Palette</b></td>
		<td>For clients that require the palette to be always visible, and to provide 
		further customizability to the end-user, the fly-out palette is also being 
		introduced. The palette flies out over the top of the editor when the user 
		hovers over it (or clicks on it), and auto-hides when not in use.
		<p>
		<img src="images-30/flyout-hidden.gif" alt="Screenshot showing the hidden flyout palette" title="Fly-out Palette Hidden"></p>
		<p>The user can also pin it open, if so desired.</p>
		<p>
		<img src="images-30/flyout-context-menu.gif" alt="Screenshot showing the fly-out palette pinned open and its context menu" title="Fly-out Palette Showing"></p>
		<p>It can be resized, docked on either size of the editor, and is completely 
		accessible. The fly-out is only visible when the palette view is not. It 
		automatically comes up when the palette view is closed (or when the user 
		switches to a perspective in which the view is not open), and disappears 
		when the palette view is opened. The palette state (selection, drawer expansion, 
		etc.) is maintained when switching from the view to the fly-out and vice-versa.</p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Palette Stacks</b></td>
		<td>
		<p>It is now possible to create stacks of entries on the palette. The active 
		entry in the stack is the one visible on the top. A drop-down menu allows 
		changing the active entry. When the palette is in any layout other than 
		list, the drop-down can only be accessed via <i>Alt+Down</i> .</p>
		<p>
		<img src="images-30/palette-stack.gif" alt="Screenshot showing a palette stack and its drop-down menu" title="Palette Stack" align="middle"></p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Shortest Path Connection Routing</b></td>
		<td>An automatic connection routing technique, that employs the shortest 
		path algorithm to find paths around obstacles, is now available in GEF.
		<p>
		<img src="images-30/shortestPaths.gif" alt="Screenshot showing automatic connection routing" title="Shortest Path Connection Routing Technique"></p>
		<p>This feature can be activated in the logic example by deselecting everything 
		in the diagram and then changing the connection router via the property 
		sheet.</p>
		<p>
		<img src="images-30/propertySheet.gif" alt="Screenshot showing the connection router in the property sheet" title="Property Sheet"></p>
		</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Panning</b></td>
		<td>With the PanningSelectionTool, it is possible to pan by moving the mouse 
		while holding down <i>spacebar</i> and <i>mouse button 1</i> (left mouse 
		button).&nbsp; This is demonstrated in the logic example, which uses the 
		PanningSelectionTool as the default tool, instead of the SelectionTool.</td>
	</tr>
	<tr>
		<td colspan="2"><hr></td>
	</tr>
	<tr>
		<td valign="top" align="right"><b>Match Size of Figures</b></td>
		<td>New actions are available that can, with more than one part selected, 
		resize all selected parts to have the same height or width as that of the 
		primary selection (the part that was last selected).
		<p>
		<img src="images-30/matchSize.jpg" alt="Screenshot showing the actoins on the view menu" title="Match Width of Figures and Match Height of Figures"></p>
		</td>
	</tr>
</table>
<br>
<br>
<p>
<img src="images-30/cpy.gif" border="0" alt="Copyright 2000, 2004 IBM Corporation and others." width="324" height="14">
</p>

</body>

</html>
